﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Kokomo.PeInspector.Reflection.Disassembly
{
	/// <summary>
	/// Specifies options for disassembly.
	/// </summary>
	/// <seealso cref="MsilDecompiler.Decompile(System.Reflection.MethodBase, MsilDecompilationFlags)"/>
	[Flags]
	public enum MsilDecompilationFlags
	{
		/// <summary>
		/// Track references
		/// </summary>
		TrackReferences = 1,
		/// <summary>
		/// Include MSIL instructions in <see cref="MethodDecompilation"/>.
		/// </summary>
		IncludeMsilInstructions = 2,
		/// <summary>
		/// Include source code graph in result <see cref="MethodDecompilation"/>.
		/// </summary>
		IncludeSourceCode = 4,

		/// <summary>
		/// Includes all options.
		/// </summary>
		Full =
			TrackReferences
			| IncludeMsilInstructions
			| IncludeSourceCode
	}
}
